로컬 변수 타입 추론(Local Variable Type Inference)

✒️ 2025-05-23 20:05 내용 수정


참고 자료 : Oracle Help Center Local Variable Type Inference, Geeksforgeeks Local Variable Type Inference or LVTI in Java 10

예약된 타입 이름을 표시하는 식별자

String a = "test";

var a = "test";

Q. 그럼 var를 사용해서 보안 처리를 위한 타입 숨김 처리가 가능할까?
A. 런타임 상에서 타입을 숨기는 용도론 사용하지 않는다.


장점

List<Interger> list = new ArrayList<>();

var list = new ArrayList<Integer>();

단점

var test = fn(); // 어떤 타입인지 바로 알기 어려움
var test = null; // error!

사용할 수 없는 상황

  1. 클래스 필드
class Test {
	var a; // error!
}
  1. 초기화 표현식이 없는 지역 변수
class Main {
	public static void main(String[] args) {
		var a; // error!
	}
}
  1. 메서드 매개변수
class Test {
	public void print(var a) {} // error!
}
  1. 반환 타입
class Test {
	public var print() {} // error!
}